home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1997 #3 / Amiga Plus CD - 1997 - No. 03.iso / pd / programmierung / alienbreed3d2_src / cheesesauce / abreed3.lha / Testlevel1 / Anims next >
Text File  |  1980-01-19  |  4KB  |  285 lines

  1.  objvels: ds.l 8
  2. maxmin: 
  3.  dc.w 10,-10
  4.  dc.w 8,-8
  5.  dc.w 7,-7
  6.  dc.w 9,-9
  7.  
  8. objmoveanim:
  9.  bsr Nasties
  10.  bsr PlayerShot
  11.  bsr fruitmove
  12.  rts
  13.  
  14. rotcount:
  15.  dc.w 0
  16.  
  17. fruitmove:
  18.  
  19.  move.l #ObjectData+5*16,a0
  20.  move.l #fruitadds,a1
  21.  move.l #fruitvels,a3
  22.  move.w rotcount,d0
  23.  add.w #16*64,d0
  24.  cmp.w #16*64*6,d0
  25.  blt.s notresetrot
  26.  move.w #0,d0
  27. notresetrot
  28.  move.w d0,rotcount
  29.  moveq #3,d7
  30. rotfruit
  31.  move.l (a1)+,a2
  32.  adda.w d0,a2
  33.  move.l a2,8(a0)
  34.  
  35.  move.w (a3),d1
  36.  
  37.  move.w 4(a0),d2
  38.  add.w d1,d2
  39.  cmp.w #64+96,d2
  40.  blt.s notbounce
  41.  neg.w d1
  42.  sub.w #1,d1
  43. notbounce:
  44.  add.w #1,d1
  45.  move.w d2,4(a0)
  46.  move.w d1,(a3)+
  47.  
  48.  add.w #16,a0
  49.  dbra d7,rotfruit
  50.  
  51.  rts
  52.  
  53. fruitvels:
  54.  dc.w 0,-3,2,-4 
  55.  
  56. fruitadds:
  57.  dc.l Objects+4096*6
  58.  dc.l Objects+4096*6+16
  59.  dc.l Objects+4096*6+32
  60.  dc.l Objects+4096*6+48
  61.  
  62. shotxvel: dc.w 50
  63. shotzvel: dc.w 0
  64.  
  65. clicked: dc.w 0
  66.  
  67. PlayerShot:
  68.  
  69.  tst.b clicked
  70.  bne pressedfire
  71.  
  72.  move.l #ObjectData+10*16,a0
  73.  move.w 12(a0),d0
  74.  bge.s inplay
  75.  
  76.  rts
  77.  
  78. inplay:
  79.  
  80.  move.l #Points,a1
  81.  move.w (a0),d1
  82.  lea (a1,d1.w*4),a1
  83.  
  84.  move.w (a1),d2
  85.  move.w d2,oldx
  86.  add.w shotxvel,d2
  87.  move.w d2,newx
  88.  move.w 2(a1),d2
  89.  move.w d2,oldz
  90.  add.w shotzvel,d2
  91.  move.w d2,newz
  92.  move.l #ZoneAdds,a2
  93.  move.l (a2,d0.w*4),objroom
  94.  move.w shotxvel,xdiff
  95.  move.w shotzvel,zdiff
  96.  movem.l a0/a1/a2/d0,-(a7)
  97.  jsr MoveObject
  98.  movem.l (a7)+,a0/a1/a2/d0
  99.  tst.b hitwall
  100.  beq.s nothitwall
  101.  
  102.  move.w #-1,12(a0)
  103.  rts
  104.  
  105. nothitwall:
  106.  
  107.  move.l objroom,a3
  108.  move.w (a3),12(a0)
  109.  move.w newx,(a1)
  110.  move.w newz,2(a1)
  111.  
  112.  rts
  113.  
  114. pressedfire:
  115.  
  116.  move.l #ObjectData+10*16,a0
  117.  move.w 12(a0),d0
  118. ; bge inplay
  119.  
  120.  move.l #Points,a1
  121.  move.w (a0),d1
  122.  lea (a1,d1.w*4),a1
  123.  move.w xoff,(a1)
  124.  move.w zoff,2(a1)
  125.  move.w angpos,d0
  126.  move.l #SineTable,a2
  127.  adda.w d0,a2
  128.  move.w (a2),d0
  129.  ext.l d0
  130.  asl.l #7,d0
  131.  swap d0
  132.  move.w d0,shotxvel
  133.  move.w 2048(a2),d0
  134.  ext.l d0
  135.  asl.l #7,d0
  136.  swap d0
  137.  move.w d0,shotzvel
  138.  move.l Roompt,a2
  139.  move.w (a2),12(a0)
  140.  move.l 2(a2),d0
  141.  asr.l #7,d0
  142.  move.w d0,4(a0)
  143.  move.w (a2),d0
  144.  
  145.  bra inplay
  146.  
  147.  rts
  148.  
  149. Nasties:
  150.  
  151.  move.l #objvels,a3
  152.  move.l #maxmin,a4
  153.  moveq #3,d7
  154.  move.l #ObjectData,a0
  155.  move.l #Points+34*4,a1
  156. objloop: 
  157.  move.l #0,(a3)
  158.  
  159.  move.w 4(a0),d0
  160.  cmp.w 4(a3),d0
  161.  beq.s rightheight
  162.  bgt.s goingdown
  163.  add.w #10,d0
  164. goingdown:
  165.  subq #8,d0
  166. rightheight:
  167.  move.w d0,4(a0)
  168.  
  169.  move.w (a1),d0
  170.  move.w 2(a1),d1
  171.  move.w xoff,d2
  172.  move.w zoff,d3
  173.  sub.w d0,d2
  174.  sub.w d1,d3
  175.  move.w (a4)+,d4
  176.  move.w (a4)+,d5
  177.  cmp.w d4,d2
  178.  blt.s .notoofastr
  179.  move.w d4,d2
  180. .notoofastr
  181.  cmp.w d5,d2
  182.  bgt.s .notoofastl
  183.  move.w d5,d2
  184. .notoofastl
  185.  cmp.w d4,d3
  186.  blt.s .notoofasti
  187.  move.w d4,d3
  188. .notoofasti
  189.  cmp.w d5,d3
  190.  bgt.s .notoofasto
  191.  move.w d5,d3
  192. .notoofasto
  193.  
  194.  move.w d2,(a3)
  195.  move.w d3,2(a3)
  196.  
  197.  move.w 12(a0),d2
  198.  move.l ZoneAdds(pc,d2.w*4),objroom
  199.  move.w d0,oldx
  200.  move.w d1,oldz
  201.  add.w (a3),d0
  202.  add.w 2(a3),d1
  203.  move.w d0,newx
  204.  move.w d1,newz
  205.  move.w (a3),xdiff
  206.  move.w 2(a3),zdiff
  207.  movem.l a0/a1/a3/a4/d7,-(a7)
  208.  Jsr MoveObject
  209.  movem.l (a7)+,a0/a1/a3/a4/d7
  210.  
  211.  move.l objroom,a2
  212.  move.w (a2),12(a0)
  213.  move.w 6(a2),2(a0)
  214.  move.l 2(a2),d0
  215.  asr.l #7,d0
  216.  move.w d0,4(a3)
  217.  
  218.  move.w newx,(a1)+
  219.  move.w newz,(a1)+
  220.  addq #6,a3
  221.  adda.w #16,a0
  222.  dbra d7,objloop
  223.  
  224.  rts
  225.  
  226. ZoneAdds:
  227.  dc.l ZoneDat0
  228.  dc.l ZoneDat1
  229.  dc.l ZoneDat2
  230.  dc.l ZoneDat3
  231.  dc.l ZoneDat4
  232.  dc.l ZoneDat5
  233.  dc.l ZoneDat6
  234.  dc.l ZoneDat7
  235.  dc.l ZoneDat8
  236.  dc.l ZoneDat9
  237.  dc.l ZoneDat10
  238.  dc.l ZoneDat11
  239.  dc.l ZoneDat12
  240.  dc.l ZoneDat13
  241.  dc.l ZoneDat14
  242.  dc.l ZoneDat15
  243.  
  244. putinbackdrop:
  245.  
  246.  move.w angpos,d5
  247.  add.w #2048,d5
  248.  and.w #8191,d5
  249.  muls #432,d5
  250.  divs #8192,d5
  251.  muls #160,d5
  252.  
  253.  CACHE_ON d1
  254.  
  255.  move.l frompt,a0
  256.  adda.w #104*4,a0
  257.  move.l #BackPicture,a1
  258.  add.l d5,a1
  259.  move.w #104*4,d1
  260.  move.w #2,d4
  261. allbars:
  262.  move.w #31,d3
  263. onebar:
  264.  move.w #1,d0
  265.  move.l a0,a2
  266. vertline:
  267.  REPT 20
  268.  move.w (a1)+,(a2)
  269.  adda.w d1,a2
  270.  ENDR
  271.  dbra d0,vertline
  272.  
  273.  adda.w #80,a1
  274.  
  275.  cmp.l #EndBackPicture,a1
  276.  blt.s notoffrightend
  277.  move.l #BackPicture,a1
  278. notoffrightend
  279.  
  280.  addq #4,a0
  281.  dbra d3,onebar
  282.  addq #4,a0
  283.  dbra d4,allbars
  284.  rts
  285.